【JS-TASK4】如何理解JS和JS作用域链?

小课堂【成都分院】

分享人:刘思言

目录

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

作用域与作用域链是JS中非常重要的概念之一

学习作用域与作用域链对于深入了解JS的运行机制有很大的帮助。

2.知识剖析

变量作用域

全局作用域

全局变量拥有全局作用域

局部作用域

局部变量只有在定义他的函数体内有定义,他的作用域是局部性的,函数的参数也是局部变量 在函数体内,局部变量的优先级高于全局变量,同名的局部变量和全局变量,在函数体内,全局变量会被局部变量覆盖掉

ps.在函数体内不使用var声明变量,js会自动把这个变量识别为全局变量

函数作用域

区别于c语言及一些其他语言,js是没有块级作用域的,取而代之的是js自己的函数作用域 变量在声明他们的函数体内,及这个函数体嵌套的任意函数体内都是有定义的

作用域链

如果将一个局部变量看作是自定义实现的对象的属性的话,那么我们可以换一个角度来理解变量作用域。每一段js代码都有一个与之关联的作用域链,这个作用域链可以看作是一个对象列表或者是一个链表,其中定义了这段代码作用域内的变量。

3.常见问题

如何理解作用域和作用域链

4.解决方案

一些小demon

5.编码实战

6.扩展思考

声明提前

闭包

闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包最简单的方式就是在一个函数内创建另一个函数

7.参考文献

javaScript高级程序设计

你不知道的JS

8.更多讨论

鸣谢

感谢大家观看

BY : 刘思言

感谢 : 徐浩程